<?php
namespace ZN\Buffering;

interface BufferInterface
{
	//----------------------------------------------------------------------------------------------------
	//
	// Yazar      : Ozan UYKUN <ozanbote@windowslive.com> | <ozanbote@gmail.com>
	// Site       : www.zntr.net
	// Lisans     : The MIT License
	// Telif Hakkı: Copyright (c) 2012-2016, zntr.net
	//
	//----------------------------------------------------------------------------------------------------
	
	//----------------------------------------------------------------------------------------------------
	// Take File Buffer
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $file
	// @return content
	//
	//----------------------------------------------------------------------------------------------------
	public function file($file);	
	
	//----------------------------------------------------------------------------------------------------
	// Take File Buffer
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string/callable $func
	// @param  array           $params
	// @return callable
	//
	//----------------------------------------------------------------------------------------------------
	public function func($func, $params);
	
	//----------------------------------------------------------------------------------------------------
	// Insert
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string 				  $name
	// @param  callable/object/string $data
	// @param  array				  $params
	// @return bool
	//
	//----------------------------------------------------------------------------------------------------
	public function insert($name, $data, $params);
	
	//----------------------------------------------------------------------------------------------------
	// Select
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $name
	// @return callable/content
	//
	//----------------------------------------------------------------------------------------------------
	public function select($name);
	
	//----------------------------------------------------------------------------------------------------
	// Delete
	//----------------------------------------------------------------------------------------------------
	// 
	// @param  string $name
	// @return bool
	//
	//----------------------------------------------------------------------------------------------------
	public function delete($name);
}